package com.eastfair.imaster.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;

import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;

/**
 * <p>
 * 实体类
 * 公司表
 * </p>
 *
 * @author liuxiaobai
 * @since 2021-08-19
 */
@Data
public class CompanyDTO implements Serializable {
    public interface executeCreateCompany {}
    public interface checkCompany {}

    public interface executeUpdCompany {}
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id")
    @NotNull(groups = {checkCompany.class,executeUpdCompany.class},message = "公司id不能为空")
    private Long id;
    /**
     * 项目ID
     */
    @ApiModelProperty(value = "项目ID")
    private Long projectId;
    /**
     * 企业是否认证 1是 0否
     */
    @ApiModelProperty(value = "企业是否认证 1是 0否")
    private Integer isAuthentication;
    /**
     * 公司名称
     */
    @ApiModelProperty(value = "公司名称")
    @Size(max = 255, message = "公司名称长度不能超过255")
    @NotBlank(groups = {executeCreateCompany.class,executeUpdCompany.class},message = "公司名称不能为空")
    private String name;
    /**
     * 公司英文名称
     */
    @ApiModelProperty(value = "公司英文名称")
    @Size(max = 255, message = "公司英文名称长度不能超过255")
    private String enName;
    /**
     * 地址
     */
    @ApiModelProperty(value = "地址")
    @Size(max = 200, message = "地址长度不能超过200")
    private String address;
    /**
     * 英文地址
     */
    @ApiModelProperty(value = "英文地址")
    @Size(max = 255, message = "英文地址长度不能超过255")
    private String enAddress;
    /**
     * 国家ID
     */
    @ApiModelProperty(value = "国家ID")
    private String countryId;
    /**
     * 省份ID
     */
    @ApiModelProperty(value = "省份ID")
    private String provinceId;
    /**
     * 城市ID
     */
    @ApiModelProperty(value = "城市ID")
    private String cityId;



    /**
     * 国家名称
     */
    @ApiModelProperty(value = "国家名称")
    @Size(max = 255, message = "国家名称长度不能超过255")
    private String countryName;

    /**
     * 省份名称
     */
    @ApiModelProperty(value = "省份名称")
    @Size(max = 255, message = "省份名称长度不能超过255")
    private String provinceName;

    /**
     * 城市名称
     */
    @ApiModelProperty(value = "城市名称")
    @Size(max = 255, message = "城市名称长度不能超过255")
    private String cityName;


    /**
     * 公司logo
     */
    @ApiModelProperty(value = "公司logo")
    @Size(max = 255, message = "公司logo长度不能超过255")
    private String logoImage;
    /**
     * 微信宣传视频
     */
    @ApiModelProperty(value = "微信宣传视频")
    @Size(max = 1024, message = "微信宣传视频长度不能超过1024")
    private String wechatAdvertsVideo;
    /**
     * 宣传视频
     */
    @ApiModelProperty(value = "宣传视频")
    @Size(max = 1024, message = "宣传视频长度不能超过1024")
    private String advertsVideo;
    /**
     * 宣传视频缩略图
     */
    @ApiModelProperty(value = "宣传视频缩略图")
    @Size(max = 1024, message = "宣传视频缩略图长度不能超过1024")
    private String advertsVideoImage;
    /**
     * 宣传图片
     */
    @ApiModelProperty(value = "宣传图片")
    @Size(max = 1024, message = "宣传图片长度不能超过1024")
    private String advertsImage;
    /**
     * 联系邮箱
     */
    @ApiModelProperty(value = "联系邮箱")
    @Size(max = 255, message = "联系邮箱长度不能超过255")
    private String email;
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    @Size(max = 255, message = "联系电话长度不能超过255")
    private String telephone;
    /**
     * 传真
     */
    @ApiModelProperty(value = "传真")
    @Size(max = 100, message = "传真长度不能超过100")
    private String fax;
    /**
     * 展商品牌
     */
    @ApiModelProperty(value = "展商品牌")
    @Size(max = 128, message = "展商品牌长度不能超过128")
    private String brand;
    /**
     * 展商英文品牌
     */
    @ApiModelProperty(value = "展商英文品牌")
    @Size(max = 128, message = "展商英文品牌长度不能超过128")
    private String enBrand;
    /**
     * 邮编
     */
    @ApiModelProperty(value = "邮编")
    @Size(max = 64, message = "邮编长度不能超过64")
    private String zipCode;
    /**
     * 公司规模
     */
    @ApiModelProperty(value = "公司规模")
    @Size(max = 64, message = "公司规模长度不能超过64")
    private String companyScale;
    /**
     * 注册资本
     */
    @ApiModelProperty(value = "注册资本")
    @Size(max = 64, message = "注册资本长度不能超过64")
    private String registeredCapital;
    /**
     * 纳税识别号
     */
    @ApiModelProperty(value = "纳税识别号")
    @Size(max = 128, message = "纳税识别号长度不能超过128")
    private String identificationNumber;
    /**
     * 是否上市 1是 0否
     */
    @ApiModelProperty(value = "是否上市 1是 0否")
    private Integer isListed;
    /**
     * 网址
     */
    @ApiModelProperty(value = "网址")
    @Size(max = 255, message = "网址长度不能超过255")
    private String website;
    /**
     * 展商简介
     */
    @ApiModelProperty(value = "展商简介")
    @Size(max = 65535, message = "展商简介长度不能超过65,535")
    private String introduction;
    /**
     * 公司英文简介
     */
    @ApiModelProperty(value = "公司英文简介")
    @Size(max = 65535, message = "公司英文简介长度不能超过65,535")
    private String enIntroduction;
    /**
     * 产品简介
     */
    @ApiModelProperty(value = "产品简介")
    @Size(max = 65535, message = "产品简介长度不能超过65,535")
    private String productIntroduction;
    /**
     * 展品英文描述
     */
    @ApiModelProperty(value = "展品英文描述")
    @Size(max = 65535, message = "展品英文描述长度不能超过65,535")
    private String enProductIntroduction;
    /**
     * 公司认证
     */
    @ApiModelProperty(value = "公司认证")
    @Size(max = 100, message = "公司认证长度不能超过100")
    private String certification;
    /**
     * 三维3D展位链接
     */
    @ApiModelProperty(value = "三维3D展位链接")
    @Size(max = 100, message = "三维3D展位链接长度不能超过100")
    private String abbrUrl;
    /**
     * 展商联系人姓名
     */
    @ApiModelProperty(value = "展商联系人姓名")
    @Size(max = 32, message = "展商联系人姓名长度不能超过32")
    private String contactName;
    /**
     * 展商联系人手机号码
     */
    @ApiModelProperty(value = "展商联系人手机号码")
    @Size(max = 32, message = "展商联系人手机号码长度不能超过32")
    private String contactMobile;
    /**
     * 展商联系人邮箱
     */
    @ApiModelProperty(value = "展商联系人邮箱")
    @Size(max = 100, message = "展商联系人邮箱长度不能超过100")
    private String contactEmail;
    /**
     * 展商会务联系人姓名
     */
    @ApiModelProperty(value = "展商会务联系人姓名")
    @Size(max = 32, message = "展商会务联系人姓名长度不能超过32")
    private String contactWorkName;
    /**
     * 展商会务联系人手机号码
     */
    @ApiModelProperty(value = "展商会务联系人手机号码")
    @Size(max = 32, message = "展商会务联系人手机号码长度不能超过32")
    private String contactWorkMobile;
    /**
     * 展商会务联系人邮箱
     */
    @ApiModelProperty(value = "展商会务联系人邮箱")
    @Size(max = 100, message = "展商会务联系人邮箱长度不能超过100")
    private String contactWorkEmail;
    /**
     * vr 跳转地址
     */
    @ApiModelProperty(value = "vr 跳转地址")
    @Size(max = 1200, message = "vr 跳转地址长度不能超过1200")
    private String vrUrl;

    @ApiModelProperty(value = "管理员id")
//    @NotNull(groups = {executeCreateCompany.class})
    private Long adminUserId;

    @ApiModelProperty(value = "审核公司是否通过 1通过，0不通过 ")
    @NotNull(groups = {checkCompany.class},message = "审核不能为空")
    private Integer isCheck;


    /**
     * 营业执照照片
     */
    @ApiModelProperty(value = "营业执照照片")
    @Size(max = 1024, message = "营业执照照片长度不能超过1024")
    private String businessLicenseImage;

    /**
     * 公司法人
     */
    @ApiModelProperty(value = "公司法人")
    @Size(max = 255, message = "公司法人长度不能超过255")
    private String corp;

    /**
     * 公司法人身份证
     */
    @ApiModelProperty(value = "公司法人身份证")
    @Size(max = 255, message = "公司法人身份证长度不能超过255")
    private String corpIdcard;

    /**
     * 公司法人身份证正面
     */
    @ApiModelProperty(value = "公司法人身份证正面")
    @Size(max = 1024, message = "公司法人身份证正面长度不能超过1024")
    private String corpIdcardFrontImage;

    /**
     * 公司法人身份证反面
     */
    @ApiModelProperty(value = "公司法人身份证反面")
    @Size(max = 1024, message = "公司法人身份证反面长度不能超过1024")
    private String corpIdcardSideImage;


    /**
     * 统一社会信用代码
     */
    @ApiModelProperty(value = "统一社会信用代码")
    @Size(max = 255, message = "统一社会信用代码长度不能超过255")
    private String organizationCode;

    /**
     * 背景图
     */
    @ApiModelProperty(value = "背景图")
    @Size(max = 1024, message = "背景图长度不能超过1024")
    private String backgroundImg;


    /**
     * 公司管理员姓名
     */
    @ApiModelProperty(value = "公司管理员姓名")
    private String adminName;

    /**
     * 公司管理员手机
     */
    @ApiModelProperty(value = "公司管理员手机")
    private String adminMobile;

    /**
     * 公司管理员邮箱
     */
    @ApiModelProperty(value = "公司管理员邮箱")
    private String adminEmail;


    /**
     * 主键id集合
     */
    @ApiModelProperty(value = "主键id集合")
    private List<Long> ids;


    /**
     * 组织id集合
     */
    @ApiModelProperty(value = "组织id集合")
    @NotNull(groups = {executeCreateCompany.class},message = "组织id集合不能为空")
    private List<Long> orgIds;


    /**
     * 角色id集合
     */
    @ApiModelProperty(value = "角色id集合")
//    @NotNull(groups = {executeCreateCompany.class},message = "角色id集合不能为空")
    private List<Long> roleIds;



    /**
     * 联系电话前缀
     */
    @ApiModelProperty(value = "联系电话前缀")
    private String telephonePrefix;

    /**
     * 传真前缀
     */
    @ApiModelProperty(value = "传真前缀")
    private String faxPrefix;


    /**
     * 展商联系人手机号码前缀
     */
    @ApiModelProperty(value = "展商联系人手机号码前缀")
    private String contactMobilePrefix;

    /**
     * 展商会务联系人手机号码前缀
     */
    @ApiModelProperty(value = "展商会务联系人手机号码前缀")
    private String contactWorkMobilePrefix;
}
